package com.vigmonk.utils 
{
	import flash.utils.ByteArray;	
	
	/**
	 * ArrayUtils.as
	 * @author VIGMONK.com
	 */
	public class ArrayUtils{

		public function ArrayUtils():void{}
		
		/**
		 * 
		 * 배열 중 앞,뒤 지정갯수만큼 빼서 앞이나 뒤로 붙임.
		 * 
		 * var array:Array = new Array(1,2,3,4,5,6,7);
		 * // 앞에서 2개를 빼서 뒤로 붙임.
		 * var rearraged:Array = reArrage(array,2);
		 * // 뒤에서 2개를 빼서 앞으로 붙임.
		 * var rearraged:Array = reArrage(array,-2);
		 * 
		 */
		public static function reArrange(_arr:Array,_num:Number):Array
		{
			var tempArr:Array = clone(_arr) as Array;
			var spliced:Array;
			for(var i:int=0;i<Math.abs(_num);i++){
				if(_num>0){
					spliced = tempArr.splice(0,1);
					tempArr.push(spliced);
				}else if(_num<0){
					spliced = tempArr.splice(-1);
					tempArr.unshift(spliced);
				}
			}
			return tempArr;
		}
		
		private static function clone(_obj:*) : Object
        {
            var clone:ByteArray = new ByteArray();
            clone.writeObject( _obj );
            clone.position = 0;

            return clone.readObject();
        }
	}
}
